Input/output (I/O) scheduling may be a method employed by a redundant array of independent disks (RAID) controller to decide an order that I/O operations are submitted to a storage subsystem associated with the RAID controller. There are various types of I/O schedulers implemented in storage environments, such as a First-In-First-Out (FIFO), a Complete Fair Queuing (CFQ), an anticipatory scheduling, and a deadline scheduling.
However, the various types of I/O schedulers may lack native intelligence to learn configuration information of the storage subsystem, such as a storage volume type, a number of drives, a segment size, and handling aspects according to an incoming I/O block size and an I/O request type. Thus, the RAID controller may lack a mechanism to automatically select an optimal I/O scheduler for I/O operations performed to and from the storage subsystem. That is, an I/O scheduler may be manually assigned without a proper assessment of overall efficiency of the I/O operations when the storage subsystem is initialized, and the I/O scheduler may continue its operation without any interim assessment even when there is a change in configuration of the storage subsystem.